package leetcode100;

import java.util.HashMap;
import java.util.Map;

// TODO 哈希表 【-】 最长连续序列
// TODO https://leetcode.cn/problems/longest-consecutive-sequence/solution/ha-xi-zui-qing-xi-yi-dong-de-jiang-jie-c-xpnr/

class lc100_0128 {
    public int longestConsecutive(int[] nums) {
        Map<Integer, Boolean> m = new HashMap<>();
        // 初始化初始值
        for (int v : nums) 
            m.put(v, true);

        int res = 0;
        for (int v : nums) {
            if (m.containsKey(v-1))    // v-1在哈希表中存在，则该点不是连续序列的起点
                continue;
            
            int cnt = 1;               // 以 n 做起点的连续序列的数量
            while(m.containsKey(v + cnt))
                cnt++;
            res = Math.max(res, cnt);  //更新答案
        }
        return res;
    }
}